iT邦幫忙

2023 iThome 鐵人賽

DAY 27
1
AI & Data

ML From Scratch系列 第 27

[Day 27] Reinforcement Learning

  • 分享至 

  • xImage
  •  

Reinforcement Learning

Reinforcement Learning 是一種機器學習方法,用於使代理(可以是機器、軟件或機器人等)通過與環境的互動來學習最佳行為策略,以最大程度地獲得累積的回報(reward)。

Reinforcement Learning 的核心是代理根據其行動的結果,通過試錯學習來改進其策略,以實現目標最大化總體回報的目標。

強化學習的基本元素包括:

  1. 代理(Agent)
    這是進行學習的實體,可以是機器人、電腦程式、自動駕駛汽車等。
  2. 環境(Environment)
    代理與其互動的外部世界,這個環境可以是現實世界中的一個場景或虛擬環境。
  3. 狀態(State)
    描述環境的一個快照,包括有關環境當前狀態的所有訊息,可以用https://chart.googleapis.com/chart?cht=tx&chl=S代表其集合。
  4. 行動(Action)
    代理可以根據其策略選擇採取的操作或行動,可以用https://chart.googleapis.com/chart?cht=tx&chl=S代表其集合。
  5. 回報(Reward)
    一個數值,用於衡量代理采取特定行動後環境的反饋,指示該行動是正向還是負向的,可以用https://chart.googleapis.com/chart?cht=tx&chl=S代表。
  6. 策略(Policy)
    代理的策略是一種映射,它將環境的狀態映射到行動的概率分佈,決定了代理如何選擇行動,可以用https://chart.googleapis.com/chart?cht=tx&chl=S代表。
  7. 價值函數(Value Function)
    價值函數衡量在特定狀態下採取行動的預期長期回報,幫助代理評估哪些狀態或行動對於實現目標更有利,可以用https://chart.googleapis.com/chart?cht=tx&chl=S代表。

強化學習的目標是找到一個最佳策略,使得代理可以在不斷的互動中最大化其預期累積回報。

這涉及到通過試錯學習來調整策略,以使代理在面臨不同狀態和環境時能夠做出最明智的行動選擇。

強化學習在許多領域都有應用,包括自動化控制、遊戲玩法、機器人學、自動駕駛、金融交易等等。


接下來介紹 MDP,它是強化學習中的一個數學模型。

Markov decision process

Markov Decision Process (MDP) 是一種用於描述和求解具有隨機性的序列決策問題的數學框架。

MDP 通常用於強化學習(Reinforcement Learning)和運筹學(Operations Research)等領域,以幫助設計和優化智能代理或決策系統。

MDP 的目標是通過選擇適當的策略,以最大化預期累積獎勵。這通常涉及到使用強化學習演算法,如值迭代、策略迭代或Q-學習,來找到最佳策略或策略近似。

MDP的主要組成是 States、Actions、Transition Probabilities、Reward Function、Policy。

還有,Discount Factor,是 MDP 中用於衡量未來獎勵的重要性。它在0到1之間取值,表示了代理對未來獎勵的重視程度。


透過 Value Iteration 解決 MDP,它可以用來找到最優值函數,進而找到最優策略。

Value Iteration

Value Iteration 是一種用於求解 Markov Decision Processes 的強化學習演算法。

它主要用於解決具有離散狀態和離散動作空間的強化學習問題,其中智能體需要在不同狀態之間做出一系列決策以最大化其長期累積獎勵。

Value Iteration 的主要是通過迭代更新每個狀態的 Value Function,直到收斂為止。價值函數用於估算在每個狀態下採取不同動作的預期長期累積獎勵。通過不斷迭代,價值函數逐漸收斂到最優價值函數,這樣智能體就可以根據這個函數來做出最佳的決策。

Value Iteration 的演算法步驟如下:

  1. 初始化每個狀態的價值函數。
  2. 通過遍歷所有可能的狀態和動作,計算每個狀態的新價值函數估計值,這個估計值是基於下一步的預期獎勵和下一步的狀態價值函數。
  3. 更新每個狀態的價值函數為新的估計值。
  4. 重複步驟2和3,直到價值函數收斂,即相鄰迭代之間的變化變得足夠小。

當價值函數收斂後,智能體可以根據最終的價值函數選擇最佳的動作,從而解決強化學習問題。

Value Iteration是一種基本但有效的強化學習演算法,特別適用於具有有限狀態和有限動作的問題。

它能夠找到最優策略,但在某些情況下可能需要較長的時間來收斂。

如果狀態空間非常大,則可能需要使用其他近似方法來解決問題。


最後介紹 Q-Learning,一種模型無關的學習方法,用於學習最優的動作價值函數(Q值函數)。

Q-Learning

Q-Learning 是一種 Reinforcement Learning,用於教導機器學習系統在特定環境中做出最佳的決策。

它是一種模仿人類學習的方法,通過不斷地嘗試不同的行動,從經驗中學習並優化其行動策略。

在Q-Learning中,我們建立一個 Q-Table,這是一個包含了所有可能的狀態和行動組合的表格。

演算法通過不斷地更新這個表格中的Q值,來衡量每個狀態和行動的價值。

Q值代表了在特定狀態下採取某個行動的預期回報或價值。

Q-Learning 的主要是通過利用已有的經驗和嘗試,來逐漸學習並改進策略,以最大化長期回報。

它遵循一個基本的更新規則,其中Q值根據獎勵機制和未來預期回報進行更新。

簡而言之,Q-Learning是一種通過不斷試錯和學習的方法,用於教導機器在特定環境中找到最佳的行動策略,並在強化學習任務中取得良好的表現。


明天介紹 Deep Q-Network !!!

/images/emoticon/emoticon07.gif

Reference


上一篇
[Day 26] Recurrent Neural Network — 解決真實問題
下一篇
[Day 28] Deep Q-Network — 背後理論
系列文
ML From Scratch31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言